package com.fsquare.shipping.service;

import java.util.List;

import org.broadleafcommerce.core.order.domain.FulfillmentOption;
import org.broadleafcommerce.core.order.fulfillment.domain.BandedPriceFulfillmentOption;
import org.broadleafcommerce.core.order.fulfillment.domain.FulfillmentPriceBand;
import org.broadleafcommerce.core.order.service.FulfillmentOptionService;

public interface ExtFulfillmentOptionService extends FulfillmentOptionService{
	
	public FulfillmentPriceBand readFulfillmentOptionPricebandById(Long id);
	
	public FulfillmentPriceBand saveFulfillmentPriceBand(FulfillmentPriceBand fulfillmentPriceBand);
		
	public void deleteFulfillmentPriceBand(Long id);
	
	public void deleteFulfillmentOption(Long id);

	public List<FulfillmentPriceBand> readFulfillmentOptionPricebandsByFulfillmentOption(Long fulfillmentOptionId);

	public FulfillmentOption createFulfillmentOption();

	public BandedPriceFulfillmentOption createBandedPriceFulfillmentOption();

	public FulfillmentPriceBand createFulfillmentPriceBand();
	
//	-- Insert the options BandedPriceFulfillmentOption
//	INSERT INTO BLC_FULFILLMENT_OPTION (FULFILLMENT_OPTION_ID, NAME, LONG_DESCRIPTION, USE_FLAT_RATES, FULFILLMENT_TYPE) VALUES (1, 'Free Shipping Above $100', 'Free Shipping Above $100', FALSE, 'PHYSICAL_SHIP');
//	INSERT INTO BLC_FULFILLMENT_OPT_BANDED_PRC(FULFILLMENT_OPTION_ID) VALUES (1);
//
//	-- Insert the price bands
//	INSERT INTO BLC_FULFILLMENT_PRICE_BAND (FULFILLMENT_PRICE_BAND_ID, RETAIL_PRICE_MINIMUM_AMOUNT, FULFILLMENT_OPTION_ID, RESULT_AMOUNT, RESULT_AMOUNT_TYPE) VALUES (1, 0.00, 1, 10.00, 'RATE');
//	INSERT INTO BLC_FULFILLMENT_PRICE_BAND (FULFILLMENT_PRICE_BAND_ID, RETAIL_PRICE_MINIMUM_AMOUNT, FULFILLMENT_OPTION_ID, RESULT_AMOUNT, RESULT_AMOUNT_TYPE) VALUES (2, 100.00, 1, 0.00, 'RATE');

//	public BandedPriceFulfillmentOption get
}
